#ifndef _EK_IO_H_
#define _EK_IO_H_

int cprintf(const char *fmt, ...);
int fprintf(int fd, const char *fmt, ...);
int vfprintf(int fd, const char *fmt, va_list);

int cprintf(const char *fmt, ...);
int vcprintf(const char *fmt, va_list);

/* READLINE 的缓冲区大小 */
#define RL_BUFLEN 1024

char *readline(const char *prompt);

/* 输出的方式设定 */
extern bool console_enabled;
extern bool log_enabled;
extern bool klog_mutexed;
extern struct mutex_t kprintf_lock;

extern struct kpipe_t klog_pipe;

int vkprintf(const char *fmt, va_list ap);
int kprintf(const char *fmt, ...);


#endif /* _EK_IO_H_ */
